package com.example.demo.huawei;

import java.util.Arrays;
import java.util.Scanner;

/**
 * 根据您提供的输入描述，登山者需要评估一张地图内有多少座山峰可以进行攀登，
 * 并且要确保可以安全返回地面，无生命危险。以下是详细规则和实现此逻辑的代码。
 * <p>
 * 规则总结
 * 上山消耗的体力是相邻高度差的两倍。
 * 下山消耗的体力是相邻高度差的一倍。
 * 平地不消耗体力。
 * 登山者需要至少有足够的体力才能安全返回。
 * 实现思路
 * 识别所有山峰的位置。
 * 计算从起始位置到山顶以及返回的体力消耗。
 * 判断登山者是否有足够的体力攀登并返回山峰。
 * 统计可以安全攀登并返回的山峰数量。
 */
public class Main8 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String[] mapInput = scanner.nextLine().split(",");
        int energy = scanner.nextInt();

        int[] map = new int[mapInput.length];
        for (int i = 0; i < mapInput.length; i++) {
            map[i] = Integer.parseInt(mapInput[i]);
        }

        int count = countClimbablePeaks(map, energy);
        System.out.println(count);
    }

    /**
     * 计算可以安全攀登并返回的山峰数量
     *
     * @param map    高度地图
     * @param energy 登山者的体力
     * @return 可以攀登并返回的山峰数量
     */
    public static int countClimbablePeaks(int[] map, int energy) {
        int peakCount = 0;

        for (int i = 1; i < map.length - 1; i++) {
            if (map[i] > map[i - 1] && map[i] > map[i + 1]) {
                int requiredEnergy = calculateEnergy(map, i);
                if (energy >= requiredEnergy) {
                    peakCount++;
                }
            }
        }
        return peakCount;
    }

    /**
     * 计算从起点到山顶并返回的体力消耗
     *
     * @param map       高度地图
     * @param peakIndex 山峰的索引
     * @return 总体力消耗
     */
    public static int calculateEnergy(int[] map, int peakIndex) {
        int energyUp = 0;
        int energyDown = 0;

        for (int i = 0; i < peakIndex; i++) {
            int heightDiff = map[i + 1] - map[i];
            if (heightDiff > 0) {
                energyUp += 2 * heightDiff;
            }
        }

        for (int i = peakIndex; i > 0; i--) {
            int heightDiff = map[i] - map[i - 1];
            if (heightDiff > 0) {
                energyDown += heightDiff;
            }
        }

        return energyUp + energyDown;
    }
}
